/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package spaceinvaders.extra;

import java.applet.Applet;
import java.applet.AudioClip;
import java.net.URL;

/**
 * Classe feita para utilizacao de musicas de fundo.
 * @author Danilo Augusto Silva
 */
public final class Music {

    private AudioClip[] musicas = new AudioClip[4]; //vetor que armazena as musicas já carregadas
    private AudioClip current; //objeto que será usado para "tocar" ou "parar" as musicas

    /**
     * O construtor Music() inicia o vetor de musicas, armazenando o caminho
     * para as musicas que podem ser utilizadas.
     */

    public Music(){
        for (int i=0; i<musicas.length; i++) {
            String filename = "/musicas/background" + i + ".mid";
            URL url = Music.class.getResource(filename);

            musicas[i] = Applet.newAudioClip(url);
        }

    }

    /**
     * Foi feito para facilitar o processo de encontrar a musica desejada
     * pelo nome.
     */

    public enum TipoMusica {
        STARWOLF, KIDICARUS, DONKEY, HYRULE }

    /**
     * Toca a musica escolhida fazendo um loop, só parando ao chamar metodo
     * stopMusic();
     * @param tipo Qual musica deseja tocar
     */

    public void playMusic(TipoMusica tipo){
        if (tipo == TipoMusica.STARWOLF) {
        current = musicas[0];
        } else if (tipo == TipoMusica.KIDICARUS) {
            current = musicas[1];
        }
        if (tipo == TipoMusica.DONKEY) {
        current = musicas[2];
        } else if (tipo == TipoMusica.HYRULE) {
            current = musicas[3];
        }

        current.loop();
    }

    /**
     * Para a musica que esta tocando (chamada anteriormente por playMusic();
     */


     public void stopMusic(){
         current.stop();
     }

}
